From: Giovanni Campagna Date: Tue, 6 Jul 2010 07:51:53 +0000 (+0200) Subject: Support setting the image after construction X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~9747 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=b5ee89459a701c788a2d7e4887618a62ca8338a6;p=gnome-shell.git Support setting the image after construction This patch allows the icon in PopupImageMenuItems to be changed at any time, while preserving the item and all other properties (style, signals) attached and without rebuilding the whole menu. This is useful for images reflecting a dynamic status (e.g. cellular strength indicator or battery level) https://bugzilla.gnome.org/show_bug.cgi?id=623652 --- diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js index e307d4e2a..33977e45e 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js @@ -221,7 +221,8 @@ PopupImageMenuItem.prototype = { this.actor.set_child(box); this._imageBin = new St.Bin({ width: this._size, height: this._size }); box.add(this._imageBin, { y_fill: false }); - box.add(new St.Label({ text: text }), { expand: true }); + this.label = new St.Label({ text: text }); + box.add(this.label, { expand: true }); if (!alwaysShowImage) { let settings = Gtk.Settings.get_default(); @@ -245,6 +246,11 @@ PopupImageMenuItem.prototype = { this._imageBin.set_child(img); this._imageBin.show(); } + }, + + setIcon: function(name) { + this._iconName = name; + this._onMenuImagesChanged(); } };